package com.atguigu.spzx.cart.service;

import com.atguigu.spzx.model.entity.h5.CartInfo;

import java.util.List;

/**
 * @ClassName: CartService
 * @Package: com.atguigu.spzx.cart.service
 * @Description
 * @Author 孤妤
 * @Date: 2023/12/20 10:08
 */
public interface CartService {
    /**
     * @description: 添加商品到购物车
     * @param: skuId为商品skuId,查询商品sku信息,skuNum为传入的商品添加个数
     **/
    void addTocart(Long skuId, Integer skuNum);
    /**
     * @description: 查询购物车列表
     **/
    List<CartInfo> findCartList();
    /**
     * @description: 移除购物车中的视商品
     * @param: 商品的skuId
     **/
    void removeCartBySkuId(Long skuId);
    /**
     * @description: 更新购物车中的状态
     * @param: 商品的skuId和isChecked选中或者未选中状态
     **/
    void changeCartIsCheckedBySkuId(Long skuId, Integer isChecked);
    /**
     * @description: 商品购物车全选或者未全选
     * @param: 全选或者未全选的状态
     **/
    void changeAllCartIsCheckedBySkuId(Integer isChecked);
    /**
     * @description: 清空购物车
     **/
    void changeAllCart();
    /**
     * @description: 获取用户选中的的购物项
     **/
    List<CartInfo> findAllCartIsChecked();
    /**
     * @description: 订单管理远程调用用户支付完毕清空购物车
     **/
    void deleteChecked();
}
